import { _decorator, Component, Node, Tween, tween, Label,Input,
    Prefab,Vec3,instantiate, Animation, assetManager,ImageAsset, Texture2D,
    Mask,Color, Sprite,resources,SpriteFrame,UITransform,AudioClip,AnimationClip,
    AudioSource,Button,labelAssembler,animation,CircleCollider2D,color,settings} from 'cc';
// import { WebsocketTs } from './WebsocketTs';
// import { systemFunction } from './systemFunction';
// import { AudioManager } from './AudioManager';

const { ccclass, property } = _decorator;
@ccclass('game')
export class game extends Component {

    // auto按钮图案(可点击)
    @property(Node)
    private autoPlayStart:Node = null;

    // 当前游戏状态
    private status = 1
    // 当前下注倒计时
    private BetTimes = 0

    // 是否
    // 上轮玩家下注数据
    private LastAutoArr = []

    start() {

    }
    // 从服务器获取到下注倒计时时长
    getBetTime(ms,status,result,income){
        // 每轮都触发autoplay，如果玩家没有选择auto也没关系，方法内会return
        // this.AutoPlay()
        for(var i  = 0;i <this.LastAutoArr.length;i++){
            if(i==this.LastAutoArr.length-1){
                if(this.LastAutoArr[i]==0){
                    // 玩家上一轮没有下注repeat按钮置灰
                    this.autoPlayStart.active = false
                    break
                }
                // 新的一轮开始，repeat红灯亮,自动模式关
                this.autoPlayStart.active = true
            }
            if(this.LastAutoArr[i]==0)continue
        }
        
        // this.isAutoPlay = false
        // 修改当前下注倒计时时长
        // 重新设置倒计时的时长//向下取整，后续需要校准时间
        this.BetTimes = Math.floor(ms / 1000)
        // 更改需要校准的时间差
        let subTime = (((ms / 1000) - Math.floor(ms / 1000)) * 1000)
        // 更改当前的游戏状态
        this.status = status
        if(this.status == 1){
            // this.endNode.children[1].children[0].getComponent(Animation).pause()
            // this.endNode.active = false
            let DrawTime = Math.floor((ms - subTime)/1000)
            // 通过延时开启下注倒计时校准时间
            setTimeout(()=>{
                if(DrawTime >=23){
                    // this.startAni.active = true
                    // this.startAni.getComponent(Animation).play()
                    setTimeout(()=>{
                        // 开始音效
                        this.AudioManager.getComponent(AudioManager).playBetSound()
                    },2600)
                    this.startAni.getComponent(Animation).on(Animation.EventType.FINISHED,()=>{
                        
                        this.Draw(20)
                    })
                }else{
                    // 开启抽奖倒计时
                    this.Draw(DrawTime)
                }
                
            },subTime)
        }else if(this.status == 10){
            // 修改本轮结果
            this.roundResult = result
            // 当前游戏状态是不可下注状态时，隐藏倒计时文字
            this.BetTimeLabel.active = false
        }else if(this.status == 100){
            // 修改本轮结果
            this.roundResult = result
            // 当前游戏状态是不可下注状态时，隐藏倒计时文字
            this.BetTimeLabel.active = false
            // 结算界面展示时间
            let showtime = (ms - subTime)
            // 预留下一轮开始时间
            if(showtime>=3000){
                showtime-=3000
            }
            this.showEnd(showtime,income)
        }
    }
}


